package com.likeycy.my;

import com.likeycy.my.list.MyArrayListUpgradeSecondVersion;

/**
 * @ClassName: MyStack
 * @Description: 自定义实现栈数据结构
 * @Author: sodagreen
 * @Date: 2021/3/4 15:26
 * @Version: 1.0
 */
public class MyStack<E>  extends MyArrayListUpgradeSecondVersion<E> {
    /*
        使用直接继承我们自己实现的ArrayList方式，是可以做的Stack数据结构的。但会存在一些问题。
        1. 直接继承导致可以在外部实例化 MyStack对象时，直接调用ArrayList的add方法。这应该不被允许。
        所以我们需要实现第二版。第二版则是把不直接继承，而是将ArrayList作为成员变量引入。
     */

    public void push(E element) {
        add(element);
    }

    public E pop() {
        return remove(size() -1);
    }

    public E top() {
        return get(size() -1);
    }

}
